# -*- coding: utf-8 -*-
"""
Created on 2023/1/31 14:14
@author: Susan
"""
import pandas as pd
from pt_utils.PairTrading import PairTrading
trans_start = '2019-01-01'
end_date = '2022-01-01'
n_rev, n_reva = 0, 0
col = ['stock_0', 'stock_1', '配对系数', '已平仓实现收益', '总盈亏', 'entry_level', 'exit_level', 'trading_tlist']
nres_df = pd.DataFrame(
columns=col)
while trans_start <= end_date:
pt = PairTrading(trans_start, trans_start, 'pt_result/')
res_df, rev, reva = pt.run()
nres_df = pd.concat([nres_df, res_df], ignore_index=True)
n_rev += rev
n_reva += reva
trans_start = pt.trans_end
res_r = [None, None, None, n_rev, n_reva, None, None, None]
res_dict = dict(zip(col, res_r))
nres_df = nres_df.append(res_dict, ignore_index=True)
print(nres_df)
formation start 2018-01-01 formation end 2019-01-01 transaction start 2019-01-01 transaction end 2019-07-01 RESULTS will be saved at pt_result//2019-01-01_1Y_2019-01-01_6M/
100%|██████████| 32/32 [00:23<00:00, 1.37it/s] 100%|██████████| 10/10 [00:02<00:00, 3.80it/s]
stock_0 stock_1 配对系数 已平仓实现收益 总盈亏 entry_level \
0 603277.SH 603321.SH 1.133581 2.672268 1.747820 -0.040305
1 300639.SZ 300676.SZ 0.803833 0.000000 0.000000 -0.063372
2 600405.SH 600152.SH 1.240165 0.000000 -7.296408 -0.014193
3 000710.SZ 601965.SH 2.023435 0.000000 0.000000 0.000005
4 300669.SZ 603331.SH 1.083117 0.000000 -2.037734 -0.02728
5 300048.SZ 600152.SH 1.101551 6.004622 1.894522 -0.022145
6 300554.SZ 300698.SZ 1.331311 0.000000 -9.036801 -0.017061
7 000710.SZ 000913.SZ 1.440557 4.093893 4.093893 -0.022348
8 002284.SZ 002590.SZ 0.996017 0.000000 0.000000 -1034.16
9 600620.SH 000882.SZ 3.832606 985.285026 985.285026 -0.117583
10 formation 2018-01-01 2019-01-01 998.055810 974.650318 transaction
exit_level trading_tlist
0 0.040305 [2019-01-16 00:00:00, 2019-01-18 00:00:00, 201...
1 0.063372 []
2 0.014193 [2019-01-02 00:00:00]
3 -0.000005 None
4 0.02728 [2019-01-21 00:00:00]
5 0.022145 [2019-01-02 00:00:00, 2019-04-30 00:00:00, 201...
6 0.017061 [2019-01-02 00:00:00]
7 0.022348 [2019-06-20 00:00:00, 2019-06-26 00:00:00]
8 1034.16 []
9 0.117583 [2019-02-28 00:00:00, 2019-05-06 00:00:00]
10 2019-01-01 2019-07-01
所有挑选出的配对组===================================================================
已平仓实现收益 998.0558096984432 总盈亏 974.6503181065447
formation start 2018-07-01 formation end 2019-07-01
transaction start 2019-07-01 transaction end 2020-01-01
RESULTS will be saved at pt_result//2019-07-01_1Y_2019-07-01_6M/
100%|██████████| 32/32 [00:36<00:00, 1.13s/it] 100%|██████████| 10/10 [00:02<00:00, 3.65it/s]
stock_0 stock_1 配对系数 已平仓实现收益 总盈亏 entry_level \
0 300288.SZ 300399.SZ 1.352454 0 -33.302957 -0.10886
1 000686.SZ 601555.SH 2.105418 0 -92.257706 -0.121912
2 300701.SZ 300720.SZ 1.079905 0 0.000000 -0.040299
3 603444.SH 600633.SH 1.199062 0 0.000000 -0.019228
4 002195.SZ 600633.SH 1.093554 8.43364 -17.584458 -0.02398
5 600061.SH 601377.SH 1.611178 -6.104563 -61.208724 -0.0228
6 300348.SZ 600633.SH 1.125059 5.530205 5.530205 -0.013645
7 002261.SZ 300288.SZ 0.873609 0 0.000000 0.000009
8 300277.SZ 300288.SZ 0.798652 0 0.000000 -0.039115
9 000686.SZ 600061.SH 1.101037 12.273172 -16.988482 -0.026092
10 formation 2018-07-01 2019-07-01 20.132454 -215.812122 transaction
exit_level trading_tlist
0 0.10886 [2019-07-01 00:00:00]
1 0.121912 [2019-07-01 00:00:00]
2 0.040299 []
3 0.019228 []
4 0.02398 [2019-07-26 00:00:00, 2019-09-09 00:00:00, 201...
5 0.0228 [2019-07-01 00:00:00, 2019-08-06 00:00:00, 201...
6 0.013645 [2019-07-01 00:00:00, 2019-08-16 00:00:00]
7 -0.000009 None
8 0.039115 []
9 0.026092 [2019-07-01 00:00:00, 2019-12-20 00:00:00, 201...
10 2019-07-01 2020-01-01
所有挑选出的配对组===================================================================
已平仓实现收益 20.132453528966355 总盈亏 -215.81212180170544
formation start 2019-01-01 formation end 2020-01-01
transaction start 2020-01-01 transaction end 2020-07-01
RESULTS will be saved at pt_result//2020-01-01_1Y_2020-01-01_6M/
100%|██████████| 32/32 [00:38<00:00, 1.19s/it] 100%|██████████| 10/10 [00:02<00:00, 3.86it/s]
stock_0 stock_1 配对系数 已平仓实现收益 总盈亏 entry_level \
0 000606.SZ 002030.SZ 0.743013 0 76.221846 -0.046978
1 000606.SZ 002864.SZ 1.094221 0 -6.100813 -0.036983
2 002788.SZ 300534.SZ 0.995821 5.155887 5.155887 -0.035799
3 600822.SH 600794.SH 0.769426 11.818579 11.818579 -0.049491
4 300478.SZ 603725.SH 1.365517 2.082974 -7.038397 -0.023048
5 600410.SH 600797.SH 1.010426 0 0.000000 0.000003
6 002870.SZ 603063.SH 1.364932 0 0.000000 -0.076591
7 002896.SZ 603897.SH 1.08449 2.757181 0.989421 -0.041878
8 002350.SZ 603897.SH 1.082584 0 0.000000 -0.027
9 000606.SZ 300110.SZ 1.176511 0 -9.288658 -0.032081
10 formation 2019-01-01 2020-01-01 21.814621 71.757865 transaction
exit_level trading_tlist
0 0.046978 [2020-01-02 00:00:00]
1 0.036983 [2020-01-02 00:00:00]
2 0.035799 [2020-02-17 00:00:00, 2020-04-27 00:00:00, 202...
3 0.049491 [2020-01-09 00:00:00, 2020-06-10 00:00:00]
4 0.023048 [2020-01-02 00:00:00, 2020-01-13 00:00:00, 202...
5 -0.000003 None
6 0.076591 []
7 0.041878 [2020-01-02 00:00:00, 2020-02-07 00:00:00, 202...
8 0.027 []
9 0.032081 [2020-01-02 00:00:00]
10 2020-01-01 2020-07-01
所有挑选出的配对组===================================================================
已平仓实现收益 21.81462074028922 总盈亏 71.75786519051789
formation start 2019-07-01 formation end 2020-07-01
transaction start 2020-07-01 transaction end 2021-01-01
RESULTS will be saved at pt_result//2020-07-01_1Y_2020-07-01_6M/
100%|██████████| 32/32 [00:39<00:00, 1.22s/it] 100%|██████████| 10/10 [00:02<00:00, 3.56it/s]
stock_0 stock_1 配对系数 已平仓实现收益 总盈亏 entry_level \
0 002227.SZ 603016.SH 1.116989 9.350435 1.242673 -0.014447
1 002606.SZ 603016.SH 1.12799 0.000000 -5.319982 -0.014171
2 600758.SH 603693.SH 1.02309 0.000000 3.978812 -0.025923
3 000862.SZ 000993.SZ 1.00908 1.116089 2.173697 -0.023975
4 300697.SZ 603016.SH 1.018127 0.000000 0.000000 0.000126
5 300452.SZ 300143.SZ 1.080253 0.000000 -18.649715 -0.022527
6 601288.SH 601398.SH 0.746919 0.000000 0.000000 -1034.16
7 002564.SZ 002689.SZ 1.0218 1.360429 1.360429 -0.024064
8 600560.SH 603016.SH 1.284574 0.000000 -12.329020 -0.069108
9 002189.SZ 002506.SZ 0.923314 0.000000 0.000000 0.000077
10 formation 2019-07-01 2020-07-01 11.826952 -27.543106 transaction
exit_level trading_tlist
0 0.014447 [2020-07-01 00:00:00, 2020-11-25 00:00:00, 202...
1 0.014171 [2020-07-01 00:00:00]
2 0.025923 [2020-07-01 00:00:00]
3 0.023975 [2020-07-01 00:00:00, 2020-12-09 00:00:00, 202...
4 -0.000126 None
5 0.022527 [2020-07-06 00:00:00]
6 1034.16 []
7 0.024064 [2020-07-01 00:00:00, 2020-12-24 00:00:00]
8 0.069108 [2020-07-01 00:00:00]
9 -0.000077 None
10 2020-07-01 2021-01-01
所有挑选出的配对组===================================================================
已平仓实现收益 11.826952077478532 总盈亏 -27.543105768403073
formation start 2020-01-01 formation end 2021-01-01
transaction start 2021-01-01 transaction end 2021-07-01
RESULTS will be saved at pt_result//2021-01-01_1Y_2021-01-01_6M/
100%|██████████| 32/32 [00:47<00:00, 1.49s/it] 100%|██████████| 10/10 [00:02<00:00, 3.61it/s]
stock_0 stock_1 配对系数 已平仓实现收益 总盈亏 entry_level \
0 300233.SZ 603086.SH 1.148249 14.288636 14.288636 -0.087833
1 002957.SZ 688028.SH 0.821986 3.766120 3.766120 -0.038904
2 002562.SZ 300233.SZ 0.917097 0.000000 0.000000 0.000003
3 300354.SZ 300120.SZ 1.09222 10.772395 10.772395 -0.019723
4 688066.SH 688168.SH 0.850588 0.000000 0.000000 -0.023077
5 002204.SZ 002564.SZ 1.11947 0.912965 -1.392043 -0.034382
6 002961.SZ 603093.SH 1.091699 0.000000 0.000000 -0.038892
7 002806.SZ 600770.SH 0.643384 15.799557 65.531011 -0.023211
8 300222.SZ 300444.SZ 1.39395 1.088964 -43.398823 -0.019624
9 002073.SZ 002564.SZ 1.421472 0.000000 0.000000 -0.065938
10 formation 2020-01-01 2021-01-01 46.628637 49.567296 transaction
exit_level trading_tlist
0 0.087833 [2021-01-04 00:00:00, 2021-02-19 00:00:00]
1 0.038904 [2021-05-06 00:00:00, 2021-05-31 00:00:00]
2 -0.000003 None
3 0.019723 [2021-01-04 00:00:00, 2021-01-07 00:00:00, 202...
4 0.023077 []
5 0.034382 [2021-05-21 00:00:00, 2021-06-04 00:00:00, 202...
6 0.038892 []
7 0.023211 [2021-01-04 00:00:00, 2021-05-11 00:00:00, 202...
8 0.019624 [2021-01-04 00:00:00, 2021-01-13 00:00:00, 202...
9 0.065938 []
10 2021-01-01 2021-07-01
所有挑选出的配对组===================================================================
已平仓实现收益 46.62863740367967 总盈亏 49.567295828275775
formation start 2020-07-01 formation end 2021-07-01
transaction start 2021-07-01 transaction end 2022-01-01
RESULTS will be saved at pt_result//2021-07-01_1Y_2021-07-01_6M/
100%|██████████| 32/32 [00:45<00:00, 1.42s/it] 100%|██████████| 10/10 [00:02<00:00, 3.63it/s]
stock_0 stock_1 配对系数 已平仓实现收益 总盈亏 entry_level \
0 002961.SZ 603093.SH 1.107695 0 0 -0.045314
1 601288.SH 601988.SH 0.915659 0 0 -1034.16
2 000555.SZ 300468.SZ 0.958316 0 6.73753 -0.042275
3 300120.SZ 300600.SZ 0.927183 0 0 0.000035
4 300031.SZ 688118.SH 1.442055 17.500534 17.500534 -0.090745
5 000563.SZ 601990.SH 1.537166 3.324148 3.324148 -0.039407
6 300088.SZ 603118.SH 1.569351 15.137537 15.137537 -0.021858
7 000505.SZ 600127.SH 0.840285 3.959023 3.959023 -0.040853
8 603138.SH 688118.SH 1.148841 10.69858 10.69858 -0.044069
9 300287.SZ 300588.SZ 1.429143 0 -30.36823 -0.077112
10 formation 2020-07-01 2021-07-01 50.619821 26.989121 transaction
exit_level trading_tlist
0 0.045314 []
1 1034.16 []
2 0.042275 [2021-10-28 00:00:00]
3 -0.000035 None
4 0.090745 [2021-08-04 00:00:00, 2021-08-30 00:00:00]
5 0.039407 [2021-08-10 00:00:00, 2021-08-30 00:00:00]
6 0.021858 [2021-07-01 00:00:00, 2021-07-05 00:00:00, 202...
7 0.040853 [2021-07-06 00:00:00, 2021-10-14 00:00:00, 202...
8 0.044069 [2021-08-03 00:00:00, 2021-08-23 00:00:00, 202...
9 0.077112 [2021-07-01 00:00:00]
10 2021-07-01 2022-01-01
所有挑选出的配对组===================================================================
已平仓实现收益 50.61982110855784 总盈亏 26.989121249967738
formation start 2021-01-01 formation end 2022-01-01
transaction start 2022-01-01 transaction end 2022-07-01
RESULTS will be saved at pt_result//2022-01-01_1Y_2022-01-01_6M/
100%|██████████| 32/32 [00:51<00:00, 1.61s/it] 100%|██████████| 10/10 [00:02<00:00, 3.76it/s]
stock_0 stock_1 配对系数 已平仓实现收益 总盈亏 entry_level \
0 002040.SZ 600190.SH 1.43525 0 0 -1034.16
1 300619.SZ 603667.SH 1.288964 0 0 -0.030919
2 300477.SZ 600869.SH 0.978041 16.883786 22.611653 -0.036564
3 000898.SZ 600022.SH 1.102637 0 -0.406059 -0.045755
4 600115.SH 601111.SH 0.869578 0 2.087506 -0.038087
5 002989.SZ 688069.SH 0.830004 4.211861 17.190493 -0.013856
6 603233.SH 603883.SH 1.054557 0 -7.224947 -0.052175
7 000505.SZ 600127.SH 0.834326 0 0 -0.02762
8 000926.SZ 600743.SH 0.837949 0 0 -1034.16
9 300153.SZ 300477.SZ 0.930342 6.079861 15.944232 -0.016479
10 formation 2021-01-01 2022-01-01 27.175508 50.202879 transaction
exit_level trading_tlist
0 1034.16 []
1 0.030919 []
2 0.036564 [2022-01-04 00:00:00, 2022-05-17 00:00:00, 202...
3 0.045755 [2022-01-04 00:00:00]
4 0.038087 [2022-01-04 00:00:00]
5 0.013856 [2022-01-05 00:00:00, 2022-04-07 00:00:00, 202...
6 0.052175 [2022-01-04 00:00:00]
7 0.02762 []
8 1034.16 []
9 0.016479 [2022-03-08 00:00:00, 2022-03-09 00:00:00, 202...
10 2022-01-01 2022-07-01
所有挑选出的配对组===================================================================
已平仓实现收益 27.175508044123834 总盈亏 50.20287869127456
stock_0 stock_1 配对系数 已平仓实现收益 总盈亏 entry_level \
0 603277.SH 603321.SH 1.133581 2.672268 1.74782 -0.040305
1 300639.SZ 300676.SZ 0.803833 0.0 0.0 -0.063372
2 600405.SH 600152.SH 1.240165 0.0 -7.296408 -0.014193
3 000710.SZ 601965.SH 2.023435 0.0 0.0 0.000005
4 300669.SZ 603331.SH 1.083117 0.0 -2.037734 -0.02728
.. ... ... ... ... ... ...
73 000505.SZ 600127.SH 0.834326 0 0 -0.02762
74 000926.SZ 600743.SH 0.837949 0 0 -1034.16
75 300153.SZ 300477.SZ 0.930342 6.079861 15.944232 -0.016479
76 formation 2021-01-01 2022-01-01 27.175508 50.202879 transaction
77 NaN NaN NaN 1176.253803 929.812251 NaN
exit_level trading_tlist
0 0.040305 [2019-01-16 00:00:00, 2019-01-18 00:00:00, 201...
1 0.063372 []
2 0.014193 [2019-01-02 00:00:00]
3 -0.000005 None
4 0.02728 [2019-01-21 00:00:00]
.. ... ...
73 0.02762 []
74 1034.16 []
75 0.016479 [2022-03-08 00:00:00, 2022-03-09 00:00:00, 202...
76 2022-01-01 2022-07-01
77 NaN NaN
[78 rows x 8 columns]